.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\" %%%LICENSE_END
.\"
.\" References consulted:
.\"   GNU glibc-2 source code and manual
.\"   Dinkumware C library reference http://www.dinkumware.com/
.\"   OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
.\"
.TH WCPNCPY 3 2021-03-22 "GNU" "Linux Programmer's Manual"
.SH NAME
wcpncpy \- copy a fixed-size string of wide characters,
returning a pointer to its end
.SH SYNOPSIS
.nf
.B #include <wchar.h>
.PP
.BI "wchar_t *wcpncpy(wchar_t *restrict " dest \
", const wchar_t *restrict " src ,
.BI "                 size_t " n );
.fi
.PP
.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.RE
.PP
.BR wcpncpy ():
.nf
    Since glibc 2.10:
        _POSIX_C_SOURCE >= 200809L
    Before glibc 2.10:
        _GNU_SOURCE
.fi
.SH DESCRIPTION
The
.BR wcpncpy ()
function is the wide-character equivalent
of the
.BR stpncpy (3)
function.
It copies at most
.I n
wide characters from the wide-character
string pointed to by
.IR src ,
including the terminating null wide (L\(aq\e0\(aq),
to the array pointed to by
.IR dest .
Exactly
.I n
wide characters are
written at
.IR dest .
If the length
.IR wcslen(src)
is smaller than
.IR n ,
the remaining wide characters in the array pointed to
by
.I dest
are filled with L\(aq\e0\(aq characters.
If the length
.IR wcslen(src)
is greater than or equal
to
.IR n ,
the string pointed to by
.I dest
will
not be L\(aq\e0\(aq terminated.
.PP
The strings may not overlap.
.PP
The programmer must ensure that there is room for at least
.I n
wide
characters at
.IR dest .
.SH RETURN VALUE
.BR wcpncpy ()
returns a pointer to the last wide character written, that is,
.IR dest + n \-1.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.ad l
.nh
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.BR wcpncpy ()
T}	Thread safety	MT-Safe
.TE
.hy
.ad
.sp 1
.SH CONFORMING TO
POSIX.1-2008.
.SH SEE ALSO
.BR stpncpy (3),
.BR wcsncpy (3)
.SH COLOPHON
This page is part of release 5.13 of the Linux
.I man-pages
project.
A description of the project,
information about reporting bugs,
and the latest version of this page,
can be found at
\%https://www.kernel.org/doc/man\-pages/.
